﻿
namespace SilverlightHVP.Web
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Data.Objects.DataClasses;
    using System.Linq;
    using System.ServiceModel.DomainServices.Hosting;
    using System.ServiceModel.DomainServices.Server;


    // The MetadataTypeAttribute identifies ItemMetadata as the class
    // that carries additional metadata for the Item class.
    [MetadataTypeAttribute(typeof(Item.ItemMetadata))]
    public partial class Item
    {

        // This class allows you to attach custom attributes to properties
        // of the Item class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ItemMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ItemMetadata()
            {
            }

            public int ID { get; set; }

            public string ItemUri { get; set; }

            public Listable Listable { get; set; }

            public int MyListableID { get; set; }

            public Nullable<int> MySetID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ItemsViewMetadata as the class
    // that carries additional metadata for the ItemsView class.
    [MetadataTypeAttribute(typeof(ItemsView.ItemsViewMetadata))]
    public partial class ItemsView
    {

        // This class allows you to attach custom attributes to properties
        // of the ItemsView class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ItemsViewMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ItemsViewMetadata()
            {
            }

            public string ImageSource { get; set; }

            public int ItemsID { get; set; }

            public string ItemUri { get; set; }

            public int ListablesID { get; set; }

            public int MyListableID { get; set; }

            public Nullable<int> MySetID { get; set; }

            public string TextToDisplay { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies LinkMetadata as the class
    // that carries additional metadata for the Link class.
    [MetadataTypeAttribute(typeof(Link.LinkMetadata))]
    public partial class Link
    {

        // This class allows you to attach custom attributes to properties
        // of the Link class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class LinkMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private LinkMetadata()
            {
            }

            public int ID { get; set; }

            public Listable Listable { get; set; }

            public Listable Listable1 { get; set; }

            public int MyItem { get; set; }

            public int MyListableID { get; set; }

            public Nullable<int> NewSetID { get; set; }

            public int Offset { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies LinksViewMetadata as the class
    // that carries additional metadata for the LinksView class.
    [MetadataTypeAttribute(typeof(LinksView.LinksViewMetadata))]
    public partial class LinksView
    {

        // This class allows you to attach custom attributes to properties
        // of the LinksView class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class LinksViewMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private LinksViewMetadata()
            {
            }

            public string ImageSource { get; set; }

            public int LinksID { get; set; }

            public int LIstablesID { get; set; }

            public int MyItem { get; set; }

            public int MyListableID { get; set; }

            public Nullable<int> NewSetID { get; set; }

            public int Offset { get; set; }

            public string TextToDisplay { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ListableMetadata as the class
    // that carries additional metadata for the Listable class.
    [MetadataTypeAttribute(typeof(Listable.ListableMetadata))]
    public partial class Listable
    {

        // This class allows you to attach custom attributes to properties
        // of the Listable class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ListableMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ListableMetadata()
            {
            }

            public int ID { get; set; }

            public string ImageSource { get; set; }

            public EntityCollection<Item> Items { get; set; }

            public EntityCollection<Link> Links { get; set; }

            public EntityCollection<Link> Links1 { get; set; }

            public EntityCollection<Set> Sets { get; set; }

            public string TextToDisplay { get; set; }

            public EntityCollection<Topic> Topics { get; set; }

            public EntityCollection<Topic> Topics1 { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies SetMetadata as the class
    // that carries additional metadata for the Set class.
    [MetadataTypeAttribute(typeof(Set.SetMetadata))]
    public partial class Set
    {

        // This class allows you to attach custom attributes to properties
        // of the Set class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class SetMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private SetMetadata()
            {
            }

            public int ID { get; set; }

            public Listable Listable { get; set; }

            public int MyListableID { get; set; }

            public string Name { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies SetsViewMetadata as the class
    // that carries additional metadata for the SetsView class.
    [MetadataTypeAttribute(typeof(SetsView.SetsViewMetadata))]
    public partial class SetsView
    {

        // This class allows you to attach custom attributes to properties
        // of the SetsView class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class SetsViewMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private SetsViewMetadata()
            {
            }

            public string ImageSource { get; set; }

            public int ListablesID { get; set; }

            public int MyListableID { get; set; }

            public string Name { get; set; }

            public int SetsID { get; set; }

            public string TextToDisplay { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies TopicMetadata as the class
    // that carries additional metadata for the Topic class.
    [MetadataTypeAttribute(typeof(Topic.TopicMetadata))]
    public partial class Topic
    {

        // This class allows you to attach custom attributes to properties
        // of the Topic class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class TopicMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private TopicMetadata()
            {
            }

            public int ID { get; set; }

            public Listable Listable { get; set; }

            public Listable Listable1 { get; set; }

            public int MyItem { get; set; }

            public int MyListableID { get; set; }

            public int Offset { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies TopicsViewMetadata as the class
    // that carries additional metadata for the TopicsView class.
    [MetadataTypeAttribute(typeof(TopicsView.TopicsViewMetadata))]
    public partial class TopicsView
    {

        // This class allows you to attach custom attributes to properties
        // of the TopicsView class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class TopicsViewMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private TopicsViewMetadata()
            {
            }

            public string ImageSource { get; set; }

            public int ListablesID { get; set; }

            public int MyItem { get; set; }

            public int MyListableID { get; set; }

            public int Offset { get; set; }

            public string TextToDisplay { get; set; }

            public int TopicsID { get; set; }
        }
    }
}
